package com.sm.dao;

import java.util.List;

import com.sm.model.Collect;
import org.apache.ibatis.annotations.Param;

import com.sm.model.CourseCollect;
import com.sm.model.GoodsBean;

public interface CollectMapper {
    int deleteByPrimaryKey(Integer collectId);

    int insert(Collect record);

    int insertSelective(Collect record);

    Collect selectByPrimaryKey(Integer collectId);

    int updateByPrimaryKeySelective(Collect record);

    int updateByPrimaryKey(Collect record);


    /**
     * 通过用户id查询用户的所有的收藏的数量。
     *
     * @param userId
     * @return
     */
    int selectCollectNumber(@Param("userId") Integer userId);

    /**
     * 通过商品id和用户id查询该商品是否被该用户收藏
     *
     * @param goodsId     商品id
     * @param userId      用户id
     * @param collectType 是否是商品，-1是商品，1是视频
     * @return
     */
    Collect selectCollectByUserId(@Param("userId") Integer userId, @Param("goodsId") Integer goodsId, @Param("collectType") Integer collectType);


    Collect selectCollectByVideoId(@Param("userId") Integer userId, @Param("videoCourseId") Integer videoCourseId, @Param("collectType") Integer collectType);

    //查询收藏的商品
    List<GoodsBean> selectGoodsCollect(Integer userId);

    //查询收藏的课程
    List<CourseCollect> selectCourseCollect(Integer userId);

    //删除条件收藏
    int deleteCollect(@Param("collectIds") Integer... collectIds);

    //查满足条件的收藏
    Collect selectCollectBy(@Param("userId") Integer userId, @Param("collectType") Integer collectType, @Param("courseGoodsId") Integer courseGoodsId);

    //取消收藏
    int cancelCollect(@Param("userId") Integer userId, @Param("collectType") Integer collectType, @Param("courseGoodsId") Integer courseGoodsId);
}

















